package cn.s1995.sloth.bizs.service;

import cn.s1995.sloth.bizs.entity.UserAddress;
import com.baomidou.mybatisplus.extension.service.IService;

public interface UserAddressService extends IService<UserAddress> {

    /**
     * 获取用户默认地址
     * @param userId
     * @return
     */
    UserAddress getDefaultAddress(Long userId);

    /**
     * 更新默认地址
     * @param addrId 默认地址id
     * @param userId 用户id
     */
    void updateDefaultUserAddr(Long addrId, Long userId);

    /**
     * 删除缓存
     * @param addrId
     * @param userId
     */
    void removeCacheUserAddressByUserId(Long addrId, Long userId);

    /**
     * 根据用户id和地址id获取用户地址
     * <p>默认地址为null或0获取默认用户地址</p>
     * @param addrId
     * @param userId
     * @return
     */
    UserAddress getUserAddrByUserId(Long addrId, Long userId);

    void saveAddress(UserAddress req);

    void updateAddress(UserAddress req);
}
